#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
//最大公约数：两数的最小值同时试除两数，看能否整除，依次减减，直至找到
//法一：
int main()
{
	int m = 0;
	int n = 0;
	scanf("%d %d", &m, &n);
	int min = 0;
	min = (m > n ? n : m);
	
	while (1)
	{
		if (m % min == 0 && n % min == 0)
		{
			break;
		}
		else
		{
			min--;
		}
	}
	printf("%d\n", min);
	return 0;
}
//法二：辗转相除法（两数做取模运算, 该方法基于一个数学原理：对于任意两个正整数a和b（a > b），
//                它们的最大公约数等于a除以b的余数c和b的最大公约数。
//                通过反复应用这个原理，可以逐步缩小两个整数的范围，直到找到最大公约数）
int main()
{
	int m = 0;
	int n = 0;
	scanf("%d %d", &m, &n);
	int k = m % n;
	
	while (k = m % n)
	{
		m = n;
		n = k;
	}
	
	printf("%d\n", n);
	return 0;
}